/** ************************ easyUI的封装与扩展********************************** */
/** ************************ 自定义消息提醒********************************** */

// 右下角提醒
function showMessage(message) {
	$.messager.show({
		title : "提醒",
		msg : message,
		timeout : 5000,
		showType : "slide"
	});
}
// 页面警告
function showAlert(message) {
	$.messager.alert("警告", message);
}
// 确认窗口
function showConfim(message, fn) {
	$.messager.confirm("请确认", message, fn);
}
/** ************************ 自定义验证器********************************** */
// 自定义数字最小值验证
$.extend($.fn.validatebox.defaults.rules, {
	minNumber : {
		validator : function(value, param) {
			return value >= param[0];
		},
		message : "最小值为：{0}"
	}
});

// 自定义数字最大值验证
$.extend($.fn.validatebox.defaults.rules, {
	maxNumber : {
		validator : function(value, param) {
			return value <= param[0];
		},
		message : "最大值为：{0}"
	}
});
// 自定义数字区间值验证
$.extend($.fn.validatebox.defaults.rules, {
	betweenNumber : {
		validator : function(value, param) {
			return (value >= param[0] && value <= param[1]);
		},
		message : "数值必须在{0}和{1}之间"
	}
});
// 字符串最小长度
$.extend($.fn.validatebox.defaults.rules, {
	minLength : {
		validator : function(value, param) {
			return value.length >= param[0];
		},
		message : "最少{0}个字符"
	}
});
// 字符串最大长度
$.extend($.fn.validatebox.defaults.rules, {
	maxLength : {
		validator : function(value, param) {
			return value.length <= param[0];
		},
		message : "最多{0}个字符"
	}
});
// 字符串长度范围
$.extend($.fn.validatebox.defaults.rules, {
	betweenLength : {
		validator : function(value, param) {
			return (value.length >= param[0]) && (value.length <= param[1]);
		},
		message : "字符数在{0}与{1}个之间"
	}
});
// 唯一性校验
$.extend($.fn.validatebox.defaults.rules, {
	notReduplicate : {
		validator : function(value, param) {
			var url = param[0];
			var pName = param[1];
			var id = param[2];

			var flag = true;
			$.ajax({
				url : url,
				dataType : "json",
				type : "POST",
				data : pName + "=" + value + "&id=" + id,
				async : false,
				success : function(data) {
					flag = data.success;
				}
			});
			return flag;
		},
		message : "数据重复"
	}
});
//必须和某个字段相等
$.extend($.fn.validatebox.defaults.rules, {  
    equalTo: {
        validator:function(value,param){
            return $(param[0]).val() == value;
        },
        message:"两次输入不相同"
    }
           
});
/** ************************ 扩展datagrid********************************** */
// 添加动态增加或删除Editor的方法
$.extend($.fn.datagrid.methods, {
	addEditor : function(jq, param) {
		if (param instanceof Array) {
			$.each(param, function(index, item) {
				var e = $(jq).datagrid('getColumnOption', item.field);
				e.editor = item.editor;
			});
		} else {
			var e = $(jq).datagrid('getColumnOption', param.field);
			e.editor = param.editor;
		}
	},
	removeEditor : function(jq, param) {
		if (param instanceof Array) {
			$.each(param, function(index, item) {
				var e = $(jq).datagrid('getColumnOption', item);
				e.editor = {};
			});
		} else {
			var e = $(jq).datagrid('getColumnOption', param);
			e.editor = {};
		}
	}
});
/** ********************************自定义工具*********************************** */
// 日期对象格式化
Date.prototype.format = function(format) {
	if (isNaN(this.getMonth())) {
		return '';
	}
	if (!format) {
		format = "yyyy-MM-dd hh:mm:ss";
	}
	var o = {
		/* month */
		"M+" : this.getMonth() + 1,
		/* day */
		"d+" : this.getDate(),
		/* hour */
		"h+" : this.getHours(),
		/* minute */
		"m+" : this.getMinutes(),
		/* second */
		"s+" : this.getSeconds(),
		/* quarter */
		"q+" : Math.floor((this.getMonth() + 3) / 3),
		/* millisecond */
		"S" : this.getMilliseconds()
	};
	if (/(y+)/.test(format)) {
		format = format.replace(RegExp.$1, (this.getFullYear() + "")
				.substr(4 - RegExp.$1.length));
	}
	for ( var k in o) {
		if (new RegExp("(" + k + ")").test(format)) {
			format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
					: ("00" + o[k]).substr(("" + o[k]).length));
		}
	}
	return format;
};
